home *** CD-ROM | disk | FTP | other *** search
- This set of tools is designed to make it easier to ship sources around.
- I wrote them because I do a lot of that as moderator of mod.sources, and
- nothing else did the job for me. This set isn't perfect, but's very
- close. Included are a program to find source files, a program to partition
- them into reasonable sizes, a program to make shell archives out of
- them, a program to strip mail, news, and notes headers from archives
- before feeding them to a shell, and a program to simulate /bin/sh for
- non-Unix system.
-
- The sources in this distribution are being released into the public
- domain; do what you want, but let your conscience be your guide.
- If you somehow enhance this package, please send it on to me so that
- others can benefit.
-
- I'll try to answer any questions or problems that come up -- send me
- electronic mail.
-
- To install, edit the Makefile and shar.h as necessary (see detailed list
- of parameters, below), then run make; doing make install will put the
- manpages and executables where you told it to. I don't think "make lint"
- will work anywhere other than a 4.[23]BSD system.
-
- If you aren't running on Unix, then you will have to write replacements
- for the functions in sysfuncs.c; everything else should be OK. If you
- don't have a Unix-like make available, you will have to write a command
- script or otherwise work out something with your compiler.
-
- I freely stole ideas from a number of people who have been good enough to
- put their stuff out on Usenet. Particular thanks to Gary Perlman and Larry
- Wall for giving me something nice to reverse-engineer, and Michael Mauldin
- for unshar. It may have been a mistake to take people's names out of the
- code; if I upset anyone by doing this, please let me know.
-
- There are a couple of things that could still be done, but I'm tired of
- working on this, and I don't need them often enough to want to come up
- with general solutions. Specifically:
- Automatically splitting up large text files;
- Automatically invoking uuencode when sending binaries; and
- Perhaps arranging for the archive to invoke uudecode.
-
- Enjoy!
- Richard $alz
- Mirror Systems
- 2067 Massachusetts Avenue
- Cambridge, MA 02140
- {ihnp4, harvard!wjh12, cca, cbosgd, seismo}!mirror!rs
- rs%mirror.UUCP@cca
- rs@mirror.TMC.COM
-
- My, my, my, aren't we anal:
- $Header: README,v 1.7 87/03/24 18:09:04 rs Exp $
-
- COMPILATION PARAMETERS
- ----------------------
- [The Makefile is ... er ... self-documented.]
-
- CAN_POPEN
- If #define'd, then findsrc will do a popen() to file(1) to see if
- the file is executable, etc.
-
- DEF_SAVEIT
- This is used by unshar, and sets whether or not to save the headers
- by default.
-
- GETWD GETCWD PWDPOPEN PWDGETENV
- These are used in cwd.c to determine how to find out the current
- directory, which unshar sometimes needs to know.
-
- GETHOSTNAME HOST UNAME UUNAME WHOAMI
- There are used in host.c to determine how to find out the host name,
- which shar needs to know.
-
- IDX, RDX
- Some Unices call index/rindex strchr/strrchr.
-
- IN_SYS_DIR IN_SYS_NDIR IN_NDIR
- The findsrc program uses the BSD-style directory-reading routines.
- These routines, and the structures they use, are typically defined in
- one of <sys/dir.h> <sys/ndir.h> or "ndir.h", respectively.
-
- NEED_MKDIR
- In sysfuncs, this includes a subroutine that calls system() to do a
- mkdir command; otherwise mkdir() must be in your C library.
-
- NEED_GETOPT
- Define this if getopt is not in your C library.
-
- SYS_WAIT
- Define this if you have <sys/wait.h> and the vfork system call.
-
- THE_TTY
- This should be a "device" to open so we can read input from the
- user's terminal if standard input is, e.g., coming from a file.
- Unix systems should use the default "/dev/tty"; MS-DOS and would
- be "CON:" I guess?
-
- USE_MY_SHELL
- Used in unshar. If #define'd, then the archive is passed to my shell
- interpreter sub-routine. The default is to do a popen() to /bin/sh.
-
- USER_ENV
- The name of the environment variable that holds the user's name,
- which shar needs to know.
-
- typedef int *align_t
- This is a worst-case alignment, to get lint to shut up about malloc'd
- space. For ANSI C, e.g., this should be "typedef void *align_t".
-
- typedef long time_t
- What datatype is needed to hold a time value.
-
- typedef long off_t
- What datatype is needed to hold a file size.
-